The present invention generally relates to software patches and more particularly to systems and methods for selectively patching features using usage information for the feature.
As software applications become more complicated, the likelihood increases that they may include errors, bugs, security vulnerabilities, etc. One method of fixing any of the above is using a patch. A patch is a release of a software code that is designed to fix a particular feature. A feature may include a product or a part of a product. For example, a patch may be directed towards an entire word processing program or directed toward the spell checking component of the word processing program. When a patch is released to fix a feature, all clients that have the feature installed are patched. Thus, if a patch is released for a word processing program, any clients that have the word processing program installed on their client are patched.
The above method of patching includes many disadvantages. For example, patching all clients that have the feature means that total downtime may be excessive. It may be extremely costly to have client downtime while a client is being patched. For example, when database clients are taken down for patching in a database environment, the database system may not be accessed, which may cause costly delays in accessing data.